package com.qixin.modules.rzInvoice.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: ea_bill
 * @Author: qixin-boot
 * @Date:   2021-09-10
 * @Version: V1.0
 */
@Data
@TableName("ea_bill")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="ea_bill对象", description="ea_bill")
public class EaBill implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
	/**所属部门*/
    @Excel(name = "所属部门", width = 15)
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
    private transient String sysOrgName;

	/**费用归属人员主键*/
	@Excel(name = "费用归属人员主键", width = 15)
    @ApiModelProperty(value = "费用归属人员主键")
    private String userid;
	/*人员名曾*/
    private transient String useridName;

	/**发票录入方式 ：1手动录入，2发票识别*/
	@Excel(name = "发票录入方式 ：1手动录入，2发票识别", width = 15)
    @ApiModelProperty(value = "发票录入方式 ：1手动录入，2发票识别")
    private String source;
	/**发票类型*/
    @Excel(name="发票类型",width = 15)
    @ApiModelProperty(value = "发票类型")
    private String type;

    @JsonSerialize
    private transient String typeName;
    /**发票消费类型*/
	@Excel(name = "发票消费类型", width = 15)
    @ApiModelProperty(value = "发票消费类型")
    private String kind;

    @JsonSerialize
    private transient String kindName;
	/**发票代码*/
	@Excel(name = "发票代码", width = 15)
    @ApiModelProperty(value = "发票代码")
    private String code;
	/**发票号码*/
	@Excel(name = "发票号码", width = 15)
    @ApiModelProperty(value = "发票号码")
    private String number;
	/**开票日期  【日期统一格式：yyyy-mm-dd*/
	@Excel(name = "开票日期  【日期统一格式：yyyy-mm-dd", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "开票日期  【日期统一格式：yyyy-mm-dd")
    private Date date;
	/**税前金额*/
	@Excel(name = "税前金额", width = 15)
    @ApiModelProperty(value = "税前金额")
    private String pretaxAmount;
	/**价税合计（小写）*/
	@Excel(name = "价税合计（小写）", width = 15)
    @ApiModelProperty(value = "价税合计（小写）")
    private String total;
	/**税额*/
	@Excel(name = "税额", width = 15)
    @ApiModelProperty(value = "税额")
    private String tax;
	/**省*/
	@Excel(name = "省", width = 15)
    @ApiModelProperty(value = "省")
    private String province;
    private transient String provinceName;
	/**市*/
	@Excel(name = "市", width = 15)
    @ApiModelProperty(value = "市")
    private String city;
    private transient String cityName;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
	/**是否被使用:0未使用,1已使用*/
	@Excel(name = "是否被使用:0未使用,1已使用", width = 15)
    @ApiModelProperty(value = "是否被使用:0未使用,1已使用")
    private String isused;
	/**上车时间(出租车)*/
	@Excel(name = "上车时间(出租车)", width = 15)
    @ApiModelProperty(value = "上车时间(出租车)")
    private String timeGeton;
	/**下车时间(出租车)*/
	@Excel(name = "下车时间(出租车)", width = 15)
    @ApiModelProperty(value = "下车时间(出租车)")
    private String timeGetoff;
	/**里程(出租车)*/
	@Excel(name = "里程(出租车)", width = 15)
    @ApiModelProperty(value = "里程(出租车)")
    private String mileage;
	/**乘车时间(火车票)*/
	@Excel(name = "乘车时间(火车票)", width = 30)
    @ApiModelProperty(value = "乘车时间(火车票)")
    private String time;
	/**上车车站(火车票)*/
	@Excel(name = "上车车站(火车票)", width = 15)
    @ApiModelProperty(value = "上车车站(火车票)")
    private String stationGeton;
	/**下车车站(火车票)*/
	@Excel(name = "下车车站(火车票)", width = 15)
    @ApiModelProperty(value = "下车车站(火车票)")
    private String stationGetoff;
	/**车次(火车票)*/
	@Excel(name = "车次(火车票)", width = 15)
    @ApiModelProperty(value = "车次(火车票)")
    private String trainNumber;
	/**座位类型(火车票)*/
	@Excel(name = "座位类型(火车票)", width = 15)
    @ApiModelProperty(value = "座位类型(火车票)")
    private String seat;
    private transient String seatName;
	/**入口(过路费)*/
	@Excel(name = "入口(过路费)", width = 15)
    @ApiModelProperty(value = "入口(过路费)")
    private String entranceHighway;
	/**出口(过路费)*/
	@Excel(name = "出口(过路费)", width = 15)
    @ApiModelProperty(value = "出口(过路费)")
    private String exitHighway;
	/**票价(航空运输电子客票行程单)*/
	@Excel(name = "票价(航空运输电子客票行程单)", width = 15)
    @ApiModelProperty(value = "票价(航空运输电子客票行程单)")
    private BigDecimal fare;
	/**燃油附加费(航空运输电子客票行程单)*/
	@Excel(name = "燃油附加费(航空运输电子客票行程单)", width = 15)
    @ApiModelProperty(value = "燃油附加费(航空运输电子客票行程单)")
    private BigDecimal fuelSurcharge;
	/**民航发展基金(航空运输电子客票行程单)*/
	@Excel(name = "民航发展基金(航空运输电子客票行程单)", width = 15)
    @ApiModelProperty(value = "民航发展基金(航空运输电子客票行程单)")
    private BigDecimal caacDevelopmentFund;
	/**保险费(航空运输电子客票行程单)*/
	@Excel(name = "保险费(航空运输电子客票行程单)", width = 15)
    @ApiModelProperty(value = "保险费(航空运输电子客票行程单)")
    private BigDecimal insurance;
    /**发票图片*/
    @Excel(name = "发票图片", width = 500)
    @ApiModelProperty(value = "发票图片")
    private String billFile;

    public String getSeatName() {
        return seatName;
    }

    public void setSeatName(String seatName) {
        this.seatName = seatName;
    }

    /**休息日天数合计*/
    @Excel(name = "休息日天数合计", width = 500)
    @ApiModelProperty(value = "休息日天数合计")
    private BigDecimal holidayDays;

    /**出差开始日期*/
    @Excel(name = "出差开始日期", width = 500)
    @ApiModelProperty(value = "出差开始日期")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date travelStartDay;

    /**出差结束日期*/
    @Excel(name = "出差结束日期", width = 500)
    @ApiModelProperty(value = "出差结束日期")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date travelEndDay;

    /**出差天数合计*/
    @Excel(name = "出差天数合计", width = 500)
    @ApiModelProperty(value = "出差天数合计")
    private BigDecimal travelDays;

    /**出差期间类型*/
    @Excel(name = "出差期间类型", width = 500)
    @ApiModelProperty(value = "出差期间类型")
    private String travelTimeType;
    private transient String travelTimeTypeName;

    /**出差地点类型*/
    @Excel(name = "出差地点类型", width = 500)
    @ApiModelProperty(value = "出差地点类型")
    private String travelRegionType;
    private transient String travelRegionTypeName;

    /**出差目的*/
    @Excel(name = "出差目的", width = 500)
    @ApiModelProperty(value = "出差目的")
    private String travelTarget;
    private transient String travelTargetName;

    /**是否提供伙食:0否,1是*/
    @Excel(name = "是否提供伙食:0否,1是", width = 500)
    @ApiModelProperty(value = "是否提供伙食:0否,1是")
    private Boolean isSupportFood;

    /**是否公司派车:0否,1是*/
    @Excel(name = "是否公司派车:0否,1是", width = 500)
    @ApiModelProperty(value = "是否公司派车:0否,1是")
    private Boolean isCompanyCar;

    /**市内交通费*/
    @Excel(name = "市内交通费", width = 500)
    @ApiModelProperty(value = "市内交通费")
    private BigDecimal cityTrafficCost;

    /**伙食补助费*/
    @Excel(name = "伙食补助费", width = 500)
    @ApiModelProperty(value = "伙食补助费")
    private BigDecimal foodAllowanceCost;

    /**币种*/
    @Excel(name = "币种", width = 500)
    @ApiModelProperty(value = "币种")
    private String currencyId;

    /**验真是否通过:0不通过,1通过*/
    @Excel(name = "验真是否通过:0不通过,1通过", width = 10)
    @ApiModelProperty(value = "验真是否通过:0不通过,1通过")
    private Boolean validation;

    /**市内交通费*/
    @Excel(name = "市内交通费标准(元/天)", width = 500)
    @ApiModelProperty(value = "市内交通费标准(元/天)")
    private BigDecimal cityTrafficCostDay;

    /**伙食补助费*/
    @Excel(name = "伙食补助费标准(元/天)", width = 500)
    @ApiModelProperty(value = "伙食补助费标准(元/天)")
    private BigDecimal foodAllowanceCostDay;

    /**配车类型*/
    @Excel(name = "配车类型", width = 500)
    @ApiModelProperty(value = "配车类型")
    private String deployCarType;
    private transient String deployCarTypeName;

    /**国内国际标签:国内(D)(飞机票)*/
    @Excel(name = "国内国际标签:国内(D)(飞机票)", width = 15)
    @ApiModelProperty(value = "国内国际标签:国内(D)(飞机票)")
    private String internationalFlag;
    private transient String internationalFlagName;

    /**是否费用项目可编辑*/
    @Excel(name = "是否费用项目可编辑", width = 500)
    @ApiModelProperty(value = "是否费用项目可编辑")
    private Boolean isIndexIdEdit;

    /**税率*/
    @Excel(name = "税率", width = 15)
    @ApiModelProperty(value = "")
    private BigDecimal taxRate;

    /**是否不计税*/
    @Excel(name = "是否不计税", width = 500)
    @ApiModelProperty(value = "是否不计税")
    private Boolean isNotTax;

    /**是否所有(1为所有,查询报销人和创建人)*/
    @Excel(name = "是否所有(1为所有,查询报销人和创建人)", width = 500)
    @ApiModelProperty(value = "是否所有(1为所有,查询报销人和创建人)")
    private BigDecimal isAll;

    /**缴交费用*/
    @Excel(name = "缴交费用", width = 500)
    @ApiModelProperty(value = "缴交费用")
    private BigDecimal payFee;

    /**人员主键*/
    private transient String pkPsndoc;

    /**人员任职信息主键*/
    @Excel(name = "人员任职信息主键", width = 15)
    @ApiModelProperty(value = "人员任职信息主键")
    private java.lang.String psnjobId;
}
